
// 函数中的参数分别为 cookie 的名称、值以及过期天数
export function setCookieByDates(c_name, value, expiredays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + "=" + escape(value) +
        ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString())
}

// 如果要设置过期时间以秒为单位
export function setCookieBySeconds(c_name, value, expireseconds) {
    var exdate = new Date();
    exdate.setTime(exdate.getTime() + expireseconds * 1000);
    document.cookie = c_name + "=" + escape(value) +
        ((expireseconds == null) ? "" : ";expires=" + exdate.toGMTString())
}

// 函数中的参数为 要获取的cookie键的名称。
export function getCookie(c_name) {
    if (document.cookie.length > 0) {
        let c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            let c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) {
                c_end = document.cookie.length;
            }

            return unescape(document.cookie.substring(c_start, c_end));
        }
    }

    return "";
}

export function deleteCookie(key) {
    // 删除cookie 没有具体的删除方法，只能通过设置过期时间来删除
    let time = new Date('1970-01-01 00:00:00').toUTCString()
    document.cookie = `${key}=;expires=${time};`
}

// 格式化cookie
export function formatCookies(str) {
    // 1.先根据分号分割
    let arr = str.split(/;\s*/);
    let target = {};
    arr.forEach(v => {
        // 2.根据等号分割
        let arr1 = v.split('=');
        target[arr1[0]] = arr1[1];
    })
    return target;
}
